From 168ebb83be72796b5c456bf8e522438b25ab7722 Mon Sep 17 00:00:00 2001 From: Carlos Garcia Campos Date: Wed, 9 Feb 2011 08:53:03 +0100 Subject: [PATCH] timeline: Add _gtk_timeline_get_elapsed_time() To get the time in milliseconds since the last frame --- gtk/gtktimeline.c | 25 ++++++++++++++++++++++--- gtk/gtktimeline.h | 1 + 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/gtk/gtktimeline.c b/gtk/gtktimeline.c index 5744e4bfff..66a8c08ac7 100644 --- a/gtk/gtktimeline.c +++ b/gtk/gtktimeline.c @@ -35,6 +35,7 @@ struct GtkTimelinePriv guint source_id; GTimer *timer; + gdouble elapsed_time; gdouble progress; gdouble last_progress; @@ -309,19 +310,18 @@ gtk_timeline_run_frame (GtkTimeline *timeline) { GtkTimelinePriv *priv; gdouble delta_progress, progress; - guint elapsed_time; /* the user may unref us during the signals, so save ourselves */ g_object_ref (timeline); priv = timeline->priv; - elapsed_time = (guint) (g_timer_elapsed (priv->timer, NULL) * 1000); + priv->elapsed_time = (guint) (g_timer_elapsed (priv->timer, NULL) * 1000); g_timer_start (priv->timer); if (priv->animations_enabled) { - delta_progress = (gdouble) elapsed_time / priv->duration; + delta_progress = (gdouble) priv->elapsed_time / priv->duration; progress = priv->last_progress; if (priv->direction == GTK_TIMELINE_DIRECTION_BACKWARD) @@ -515,6 +515,25 @@ _gtk_timeline_is_running (GtkTimeline *timeline) return (priv->source_id != 0); } +/** + * gtk_timeline_get_elapsed_time: + * @timeline: A #GtkTimeline + * + * Returns the elapsed time since the last GtkTimeline::frame signal + * + * Return Value: elapsed time in milliseconds since the last frame + **/ +guint +_gtk_timeline_get_elapsed_time (GtkTimeline *timeline) +{ + GtkTimelinePriv *priv; + + g_return_val_if_fail (GTK_IS_TIMELINE (timeline), 0); + + priv = timeline->priv; + return priv->elapsed_time; +} + /** * gtk_timeline_get_fps: * @timeline: A #GtkTimeline diff --git a/gtk/gtktimeline.h b/gtk/gtktimeline.h index 0b0aee16d0..90d5725377 100644 --- a/gtk/gtktimeline.h +++ b/gtk/gtktimeline.h @@ -84,6 +84,7 @@ void _gtk_timeline_pause (GtkTimeline void _gtk_timeline_rewind (GtkTimeline *timeline); gboolean _gtk_timeline_is_running (GtkTimeline *timeline); +guint _gtk_timeline_get_elapsed_time (GtkTimeline *timeline); guint _gtk_timeline_get_fps (GtkTimeline *timeline); void _gtk_timeline_set_fps (GtkTimeline *timeline, -- 2.30.2